import Vue from 'vue'
import Vuex from 'vuex'
import { loginApi } from '@/api'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    token: localStorage.getItem('token') || '', // 前面有值用前面的, 前面要是null, 就用后面的
    refresh_token: localStorage.getItem('refresh_token') || ''
  },
  mutations: {
  // 第一个参数是state里的对象
    setToken (state, token) {
      localStorage.setItem('token', token)// 本地储存
      state.token = token
    }
  },
  actions: {
    // 登录
    // 第一个参数是vuex实例 第二个是调用时传的参数
    async asyncLoginAction (store, val) {
      try {
        const res = await loginApi(val)
        console.log(res)
        const { token } = res.data.body
        console.log(token)
        // commit 调用mutations里面的方法
        store.commit('setToken', token)
        // this.Obtain(token)
        // information(token)
        return Promise.resolve(res) // 返回成功的Promise对象
      } catch (err) {
        return Promise.reject(err)
      }
    }
    // 获取用户信息
    // async Obtain (store, val) {
    //   try {
    //     const req = await information(val)
    //     console.log(req)
    //   } catch (err) {
    //     console.log(err)
    //   }
    // }

  },
  modules: {
  }
})
